﻿/*  ----------------------------------------------------------------------------
 *  SysServer
 *  ----------------------------------------------------------------------------
 *  File:       IMessageHeader.cs
 *  Creater:     SEEN\MistSeen
 *  ----------------------------------------------------------------------------
 *  $Date: 2010-09-06 10:36:01 +0000 (Mon, 06 Sep 2010) $
 *  $Rev: 15 $
 *  $Author: ScorDeity $
 *  $URL: http://sysserver.googlecode.com/svn/trunk/src/SysServer/NetWrok/IMessageHeader.cs $
 *  $Id: IMessageHeader.cs 15 2010-09-06 10:36:01Z ScorDeity $
 */

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SysServer.NetWrok
{
    /// <summary>
    /// 消息NetMessage由“消息头+主体”构成，并且消息头和主体都必须实现上文讲到的IContract接口。
    /// 消息头既是本条NetMessage的元数据，其中包含了诸如消息长度、消息类型等描述信息。
    /// </summary>
    public interface IMessageHeader:IDataProtocol,ICloneable
    {
        /// <summary>
        /// 本消息主体的长度;
        /// </summary>
        int BodyLength { get; set; }
        /// <summary>
        /// 请求的服务类型
        /// </summary>
        char TKey { get; set; }
        /// <summary>
        /// 和TKey一起使用,最终表示服务的具体类型
        /// </summary>
        char SKey { get; set; }
        /// <summary>
        /// 服务类型中,将包含的服务列表中的索引.比如加密类型,加密方式
        /// </summary>
        int SIndex { get; set; }
        /// <summary>
        /// 用于将回复与请求一一对应起来
        /// </summary>
        int ConectToken { get; set; }
        /// <summary>
        /// 表示服务类型的结果. 或者错误号.
        /// </summary>
        int Result { get; set; }
        /// <summary>
        /// 压缩方式 
        /// </summary>
        char Zip { get; set; }
    }
}